var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var config=require('../config');
var Province=require('./province');
var City=require('./city');
var Area=require('./area');
var db=mongoose.createConnection(config.db_url);
db.on('error',function(error){
    console.log(error);
});
db.model('Province',Province.provinceSchema);
db.model('City',City.citySchema);
db.model('Area',Area.areaSchema);
var coffeeSchema=new Schema({
    name:String,
    intro:String,
    province:{type:Schema.Types.ObjectId,ref:'Province'},
    city:{type:Schema.Types.ObjectId,ref:'City'},
    area:{type:Schema.Types.ObjectId,ref:'Area'},
    addr:String
});
//users---对应数据库表名
var Coffee=db.model('Coffee',coffeeSchema);

/**
 * 获得简介信息
 */

Coffee.prototype.delCoffeeById=function(id,callback){
    Coffee.remove({_id:id},function(err){
        callback(err);
    })
}
Coffee.prototype.findCoffeeById=function(id,callback){
    Coffee.findOne({_id:id},function(err,data){
        callback(err,data);
    })
}
Coffee.prototype.findCoffeeByOpt=function(options,callback){
    Coffee.find(options).populate('province city area').exec(function(err,datas){
        callback(err,datas);
    })
}

Coffee.prototype.updateCoffeeById=function(id,options,callback){
    Coffee.update({_id:id},options,function(err){
        callback(err)
    });
}
Coffee.prototype.findForPage=function(obj,callback){
    var q=obj.search||{};                                       //查询条件
    var col=obj.columns||{};                                    //返回字段
    var query=Coffee.find(q,col).skip(obj.page.skipFrom).limit(obj.page.limit).populate('province city area');
    query.exec(function(err, datas) {
        if (err) {
            callback(err, null, null);
        } else {
            Coffee.count(q, function(err, count) {
                if (err) {
                    callback(err, null, null);
                } else {
                    var pageCount = Math.ceil(count / obj.page.limit);
                    callback(null, count,pageCount, datas);
                }
            });
        }
    });

}

module.exports =Coffee;
module.exports.coffeeSchema=coffeeSchema;


